import os
from celery import Celery, platforms

# 设置Django默认配置文件环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'keep_project0.settings')

# 创建Celery应用实例，配置Redis作为消息代理和结果后端
app = Celery('keep_project0')

# 从Django配置对象中加载Celery配置
app.config_from_object('django.conf:settings', namespace='CELERY')

# 自动发现并注册所有Django应用中的任务
app.autodiscover_tasks()

# 设置允许以root用户身份运行Celery worker
platforms.C_FORCE_ROOT = True

# 添加任务路由配置
app.conf.task_routes = {
    'base.task.generate_user_logo_task': {'queue': 'celery'},
}

# 确保任务被正确注册
@app.task(bind=True)
def debug_task(self):
    print(f'Request: {self.request!r}')
